Software defined networking (SDN) is a network architecture concept that decouples network control from the underlying network switching infrastructure so as to enable network control to become directly programmable thus allowing the underlying network infrastructure to be abstracted for applications and network services running on the network. An SDN controller is used to manage flow control in an SDN-based network. For example, SDN controllers are typically based on protocols, such as the OpenFlow™ (Open Networking Foundation) protocol, that allow control servers to instruct network elements (e.g., switches) where to send packets. The SDN controller serves as a kind of operating system for the SDN-based network. By separating the control plane (and management plane) from the network hardware and running the control plane instead as software, the SDN controller facilitates automated network management, as well as integration and administration of applications.
While an SDN controller maintains global visibility of the SDN-based network, there are networking functions that are not necessarily able to take advantage of such global visibility. One example of such a networking function is protection switching in a short time window (e.g., less than 50 milliseconds) following a link failure in an optical communication network. However, due to network complexity and required signaling, as well as due to inherent propagation delays between network elements and an SDN controller with a global network view, it is impractical for an existing SDN management and control plane to respond on such a small timescale.
Furthermore, protection paths are typically statically provisioned in an optical communication network, irrespective of traffic flows and the possible best-effort usage of paths that are reserved for high-priority protection in the case of link failures. This static protection path allocation may not allow for optimal or substantially optimal protection path selection as network traffic changes over time. Conversely, querying an SDN controller real-time in the event of a link failure can be too time consuming for reliable link protection.